From Verified Specifications to Verifiable Software∗
نویسندگان
چکیده
Declarative specifications of digital systems often contain parts that can be automatically translated into executable code. Automated code generation, as opposed to manual code writing, eliminates a potential source of errors when a prototype implementation of these models is required. Furthermore, code generation allows for better integration of formal methods into the software development process. However, for this approach to be effective, the generated code should be, ideally, as efficient as code that a normal programmer would write, and, more importantly, verifiable. We present a prototype code generator for the Prototype Verification System (PVS) that translates a subset of PVS functional specifications into an intermediate language and subsequently to multiple target languages. The generated code can be subjected to software verification tools such as verification condition generators, static analyzers, and software model-checkers, to increase the confidence that the generated code is correct. We illustrate this approach with the generation of verifiable Java code from the PVS specification of a verified distributed communication protocol.
منابع مشابه
Impact of Specification Abstractions on Client Verification
Push-button automation is an important milestone for verification systems and a likely requirement for mainstream acceptance of the notion of ”verified software”. Multiple, logically-equivalent specifications may differ widely from the standpoint of their ability to contribute to verifiable client code. Using the types of problems considered at the VSTTE 2010 competition as motivation, we explo...
متن کاملFrom Verified Models to Verifiable Code
Declarative specifications of digital systems often contain parts that can be automatically translated into executable code. Automated code generation may reduce or eliminate the kinds of errors typically introduced through manual code writing. For this approach to be effective, the generated code should be reasonably efficient and, more importantly, verifiable. This paper presents a prototype ...
متن کاملFormally Verifiable Networking
This paper proposes Formally Verifiable Networking (FVN), a novel approach towards unifying the design, specification, implementation, and verification of networking protocols within a logic-based framework. In FVN, formal logical statements are used to specify the behavior and the properties of the protocol. FVN uses declarative networking as an intermediary layer between high-level logical sp...
متن کاملVerified Implementations for Secure and Verifiable Computation
Formal verification of the security of software systems is gradually moving from the traditional focus on idealized models, to the more ambitious goal of producing verified implementations. This trend is also present in recent work targeting the verification of cryptographic software, but the reach of existing tools has so far been limited to cryptographic primitives, such as RSA-OAEP encryptio...
متن کاملFormal Verification of BPEL4WS Business Collaborations
Web services are a very appropriate communication mechanism to perform distributed business processes among several organisations. These processes should be reliable, because a failure in them can cause high economic losses. To increase their reliability at design time, we have developed VERBUS, a framework for the formal verification of business processes. VERBUS can automatically translate bu...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2012